def fibonacci(n, memo=None):
    """
    使用递归+记忆化实现动态规划计算斐波那契数列
    :param n: 要计算的斐波那契数列位置
    :param memo: 记忆化存储字典（默认为None）
    :return: 第n个斐波那契数
    """
    # 初始化记忆化字典
    if memo is None:
        memo = {}
    
    # 基础情况
    if n == 0:
        return 0
    elif n == 1:
        return 1
    
    # 检查是否已计算过
    if n in memo:
        return memo[n]
    
    # 递归计算 - 错误点：忘记存储结果到memo字典
    result = fibonacci(n-1, memo) + fibonacci(n-2, memo)
    
    # 经典错误：计算了结果但没有正确存储到记忆化字典
    # 正确做法：memo[n] = result
    
    return result  # 直接返回结果，没有存储到memo

# 测试代码
if __name__ == "__main__":
    n = 10
    print(f"斐波那契数列第{n}项是: {fibonacci(n)}")  # 小规模测试正常
    
    # 性能测试（将暴露问题）
    large_n = 40
    print(f"斐波那契数列第{large_n}项是: {fibonacci(large_n)}")